package com.yiyahui.project.erp.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.yiyahui.framework.aspectj.lang.annotation.Excel;
import com.yiyahui.framework.web.domain.BaseEntity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * 主单对象 yiya_billing_main
 * 
 * @author yiyahui
 * @date 2020-06-19
 */

@ApiModel(value="主单对象")
public class YiyaBillingMain extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long id;

    /** 市场建档id */
    @ApiModelProperty(value="市场建档id")
    @Excel(name = "市场建档id")
    private Long marketReservationId;

    /** 患者id */
    @ApiModelProperty(value="患者id")
    @Excel(name = "患者id")
    private Long clinicPersonId;

    /** 预约id */
    @ApiModelProperty(value="预约id")
    @Excel(name = "预约id")
    private Long appointmentId;

    /** 门店 */
    @ApiModelProperty(value="门店")
    @Excel(name = "门店")
    private String clinic;

    /** 首次开单时间 */
    @ApiModelProperty(value="首次开单时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "首次开单时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date firstBilling;

    /** 开单tc */
    @ApiModelProperty(value="开单tc")
    @Excel(name = "开单tc")
    private String tc;

    /** 缴费 */
    @ApiModelProperty(value="缴费")
    @Excel(name = "缴费")
    private BigDecimal payAmount;

    /** 欠费 */
    @ApiModelProperty(value="欠费")
    @Excel(name = "欠费")
    private BigDecimal owingAmount;

    /** 应收 */
    @ApiModelProperty(value="应收")
    @Excel(name = "应收")
    private BigDecimal receivable;

    /** 原价 */
    @ApiModelProperty(value="原价")
    @Excel(name = "原价")
    private BigDecimal originalPrice;

    /** 整体折扣 */
    @ApiModelProperty(value="整体折扣")
    @Excel(name = "整体折扣")
    private String allDiscount;

    /** 状态 0 新建 1 未结清 2 已结清 */
    @ApiModelProperty(value="状态 0 新建 1 未结清 2 已结清")
    @Excel(name = "状态 0 新建 1 未结清 2 已结清")
    private Integer status;

    /** 备注 */
    @ApiModelProperty(value="备注")
    @Excel(name = "备注")
    private String remarks;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setMarketReservationId(Long marketReservationId) 
    {
        this.marketReservationId = marketReservationId;
    }

    public Long getMarketReservationId() 
    {
        return marketReservationId;
    }
    public void setClinicPersonId(Long clinicPersonId) 
    {
        this.clinicPersonId = clinicPersonId;
    }

    public Long getClinicPersonId() 
    {
        return clinicPersonId;
    }
    public void setAppointmentId(Long appointmentId) 
    {
        this.appointmentId = appointmentId;
    }

    public Long getAppointmentId() 
    {
        return appointmentId;
    }
    public void setClinic(String clinic) 
    {
        this.clinic = clinic;
    }

    public String getClinic() 
    {
        return clinic;
    }
    public void setFirstBilling(Date firstBilling) 
    {
        this.firstBilling = firstBilling;
    }

    public Date getFirstBilling() 
    {
        return firstBilling;
    }

    public String getTc() {
        return tc;
    }

    public void setTc(String tc) {
        this.tc = tc;
    }

    public BigDecimal getPayAmount() {
        return payAmount;
    }

    public void setPayAmount(BigDecimal payAmount) {
        this.payAmount = payAmount;
    }

    public BigDecimal getOwingAmount() {
        return owingAmount;
    }

    public void setOwingAmount(BigDecimal owingAmount) {
        this.owingAmount = owingAmount;
    }

    public BigDecimal getReceivable() {
        return receivable;
    }

    public void setReceivable(BigDecimal receivable) {
        this.receivable = receivable;
    }

    public BigDecimal getOriginalPrice() {
        return originalPrice;
    }

    public void setOriginalPrice(BigDecimal originalPrice) {
        this.originalPrice = originalPrice;
    }

    public void setAllDiscount(String allDiscount)
    {
        this.allDiscount = allDiscount;
    }

    public String getAllDiscount() 
    {
        return allDiscount;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getStatus() 
    {
        return status;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("marketReservationId", getMarketReservationId())
            .append("clinicPersonId", getClinicPersonId())
            .append("appointmentId", getAppointmentId())
            .append("clinic", getClinic())
            .append("firstBilling", getFirstBilling())
            .append("tc", getTc())
            .append("payAmount", getPayAmount())
            .append("owingAmount", getOwingAmount())
            .append("receivable", getReceivable())
            .append("originalPrice", getOriginalPrice())
            .append("allDiscount", getAllDiscount())
            .append("status", getStatus())
            .append("remarks", getRemarks())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .toString();
    }
}
